home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Benchmarks / differen.w < prev    next >
Encoding:
Text File  |  1989-04-14  |  6.1 KB  |  351 lines

  1. procedure  main/0
  2.  
  3. _1395:
  4.     init  Y7
  5.     init  Y6
  6.     init  Y5
  7.     init  Y4
  8.     init  Y3
  9.     init  Y2
  10.     init  Y1
  11.     put_variable_y  Y8,X1
  12.     call  times10/1,8
  13.     put_unsafe_value  Y8,X1
  14.     put_constant  x,X2
  15.     put_variable_y  Y7,X3
  16.     call  d/3,7
  17.     put_unsafe_value  Y7,X1
  18.     escape  write/1
  19.     escape  nl/0
  20.     put_variable_y  Y6,X1
  21.     call  divide10/1,6
  22.     put_unsafe_value  Y6,X1
  23.     put_constant  x,X2
  24.     put_variable_y  Y5,X3
  25.     call  d/3,5
  26.     put_unsafe_value  Y5,X1
  27.     escape  write/1
  28.     escape  nl/0
  29.     put_variable_y  Y4,X1
  30.     call  log10/1,4
  31.     put_unsafe_value  Y4,X1
  32.     put_constant  x,X2
  33.     put_variable_y  Y3,X3
  34.     call  d/3,3
  35.     put_unsafe_value  Y3,X1
  36.     escape  write/1
  37.     escape  nl/0
  38.     put_variable_y  Y2,X1
  39.     call  ops8/1,2
  40.     put_unsafe_value  Y2,X1
  41.     put_constant  x,X2
  42.     put_variable_y  Y1,X3
  43.     call  d/3,1
  44.     put_unsafe_value  Y1,X1
  45.     escape  write/1
  46.     escape  nl/0
  47.     proceed
  48.  
  49.  
  50. procedure  d/3
  51.  
  52.     switch_on_term  _5437,_5437,_5439
  53. _5443:
  54.     try_me_else  _5448,3
  55. _5452:
  56.     get_variable_y  Y2,X2
  57.     get_structure  +/2,X1,2
  58.     unify_variable_x  X1
  59.     unify_variable_y  Y3
  60.     get_structure  +/2,X3,2
  61.     unify_variable_x  X3
  62.     unify_variable_y  Y1
  63.     cut
  64.     call  d/3,3
  65.     put_value_y  Y3,X1
  66.     put_value_y  Y2,X2
  67.     put_value_y  Y1,X3
  68.     execute_proc  d/3
  69. _5448:
  70.     retry_me_else  _5566
  71. _5570:
  72.     get_variable_y  Y2,X2
  73.     get_structure  -/2,X1,2
  74.     unify_variable_x  X1
  75.     unify_variable_y  Y3
  76.     get_structure  -/2,X3,2
  77.     unify_variable_x  X3
  78.     unify_variable_y  Y1
  79.     cut
  80.     call  d/3,3
  81.     put_value_y  Y3,X1
  82.     put_value_y  Y2,X2
  83.     put_value_y  Y1,X3
  84.     execute_proc  d/3
  85. _5566:
  86.     retry_me_else  _5684
  87. _5688:
  88.     get_variable_y  Y2,X2
  89.     get_structure  */2,X1,2
  90.     unify_variable_x  X1
  91.     unify_variable_y  Y3
  92.     get_structure  +/2,X3,2
  93.     unify_variable_x  X4
  94.     unify_variable_x  X5
  95.     get_structure  */2,X4,2
  96.     unify_variable_x  X3
  97.     unify_value_y  Y3
  98.     get_structure  */2,X5,2
  99.     unify_value_x  X1
  100.     unify_variable_y  Y1
  101.     cut
  102.     call  d/3,3
  103.     put_value_y  Y3,X1
  104.     put_value_y  Y2,X2
  105.     put_value_y  Y1,X3
  106.     execute_proc  d/3
  107. _5684:
  108.     retry_me_else  _5856
  109. _5860:
  110.     get_variable_y  Y2,X2
  111.     get_structure  //2,X1,2
  112.     unify_variable_x  X1
  113.     unify_variable_y  Y3
  114.     get_structure  //2,X3,2
  115.     unify_variable_x  X4
  116.     unify_variable_x  X5
  117.     get_structure  -/2,X4,2
  118.     unify_variable_x  X4
  119.     unify_variable_x  X6
  120.     get_structure  */2,X4,2
  121.     unify_variable_x  X3
  122.     unify_value_y  Y3
  123.     get_structure  */2,X6,2
  124.     unify_value_x  X1
  125.     unify_variable_y  Y1
  126.     get_structure  ^/2,X5,2
  127.     unify_value_y  Y3
  128.     unify_constant  &2
  129.     cut
  130.     call  d/3,3
  131.     put_value_y  Y3,X1
  132.     put_value_y  Y2,X2
  133.     put_value_y  Y1,X3
  134.     execute_proc  d/3
  135. _5856:
  136.     retry_me_else  _6080
  137. _6084:
  138.     get_variable_x  X5,X2
  139.     get_structure  ^/2,X1,2
  140.     unify_variable_x  X6
  141.     unify_variable_x  X2
  142.     get_structure  */2,X3,2
  143.     unify_variable_x  X3
  144.     unify_variable_x  X4
  145.     get_structure  */2,X3,2
  146.     unify_variable_x  X7
  147.     unify_value_x  X2
  148.     get_structure  ^/2,X4,2
  149.     unify_value_x  X6
  150.     unify_variable_x  X3
  151.     cut
  152.     put_value_x  X2,X1
  153.     escape  integer/1
  154.     put_value_x  X3,X1
  155.     put_constant  -,X3
  156.     put_constant  &1,X4
  157.     escape  is/4
  158.     put_value_x  X6,X1
  159.     put_value_x  X5,X2
  160.     put_value_x  X7,X3
  161.     execute_proc  d/3
  162. _6080:
  163.     retry_me_else  _6293
  164. _6297:
  165.     get_structure  -/1,X1,1
  166.     unify_variable_x  X1
  167.     get_structure  -/1,X3,1
  168.     unify_variable_x  X3
  169.     cut
  170.     execute_proc  d/3
  171. _6293:
  172.     retry_me_else  _6350
  173. _6354:
  174.     get_structure  exp/1,X1,1
  175.     unify_variable_x  X1
  176.     get_structure  */2,X3,2
  177.     unify_variable_x  X4
  178.     unify_variable_x  X3
  179.     get_structure  exp/1,X4,1
  180.     unify_value_x  X1
  181.     cut
  182.     execute_proc  d/3
  183. _6350:
  184.     retry_me_else  _6434
  185. _6438:
  186.     get_structure  log/1,X1,1
  187.     unify_variable_x  X1
  188.     get_structure  //2,X3,2
  189.     unify_variable_x  X3
  190.     unify_value_x  X1
  191.     cut
  192.     execute_proc  d/3
  193. _6434:
  194.     retry_me_else  _6499
  195. _6503:
  196.     get_value_x  X1,X2
  197.     get_constant  &1,X3
  198.     proceed
  199. _6499:
  200.     trust_me_else  fail
  201. _6536:
  202.     get_constant  &0,X3
  203.     proceed
  204. _5437:
  205.     try  _6503,3
  206.     trust  _6536
  207. _5439:
  208.     try_me_else  _6567,3
  209.     switch_on_structure  15,_6573
  210. _6573:
  211.     log/1
  212.     _6438
  213.     exp/1
  214.     _6354
  215.     -/1
  216.     _6297
  217.     ^/2
  218.     _6084
  219.     //2
  220.     _5860
  221.     */2
  222.     _5688
  223.     -/2
  224.     _5570
  225.     +/2    tcdr
  226.     _5452
  227. _6567:
  228.     retry  _6503
  229.     trust  _6536
  230.  
  231.  
  232. procedure  times10/1
  233.  
  234. _8046:
  235.     get_structure  */2,X1,2
  236.     unify_variable_x  X1
  237.     unify_constant  x
  238.     get_structure  */2,X1,2
  239.     unify_variable_x  X1
  240.     unify_constant  x
  241.     get_structure  */2,X1,2
  242.     unify_variable_x  X1
  243.     unify_constant  x
  244.     get_structure  */2,X1,2
  245.     unify_variable_x  X1
  246.     unify_constant  x
  247.     get_structure  */2,X1,2
  248.     unify_variable_x  X1
  249.     unify_constant  x
  250.     get_structure  */2,X1,2
  251.     unify_variable_x  X1
  252.     unify_constant  x
  253.     get_structure  */2,X1,2
  254.     unify_variable_x  X1
  255.     unify_constant  x
  256.     get_structure  */2,X1,2
  257.     unify_variable_x  X1
  258.     unify_constant  x
  259.     get_structure  */2,X1,2
  260.     unify_constant  x
  261.     unify_constant  x
  262.     proceed
  263.  
  264.  
  265. procedure  divide10/1
  266.  
  267. _8858:
  268.     get_structure  //2,X1,2
  269.     unify_variable_x  X1
  270.     unify_constant  x
  271.     get_structure  //2,X1,2
  272.     unify_variable_x  X1
  273.     unify_constant  x
  274.     get_structure  //2,X1,2
  275.     unify_variable_x  X1
  276.     unify_constant  x
  277.     get_structure  //2,X1,2
  278.     unify_variable_x  X1
  279.     unify_constant  x
  280.     get_structure  //2,X1,2
  281.     unify_variable_x  X1
  282.     unify_constant  x
  283.     get_structure  //2,X1,2
  284.     unify_variable_x  X1
  285.     unify_constant  x
  286.     get_structure  //2,X1,2
  287.     unify_variable_x  X1
  288.     unify_constant  x
  289.     get_structure  //2,X1,2
  290.     unify_variable_x  X1
  291.     unify_constant  x
  292.     get_structure  //2,X1,2
  293.     unify_constant  x
  294.     unify_constant  x
  295.     proceed
  296.  
  297.  
  298. procedure  log10/1
  299.  
  300. _9667:
  301.     get_structure  log/1,X1,1
  302.     unify_variable_x  X1
  303.     get_structure  log/1,X1,1
  304.     unify_variable_x  X1
  305.     get_structure  log/1,X1,1
  306.     unify_variable_x  X1
  307.     get_structure  log/1,X1,1
  308.     unify_variable_x  X1
  309.     get_structure  log/1,X1,1
  310.     unify_variable_x  X1
  311.     get_structure  log/1,X1,1
  312.     unify_variable_x  X1
  313.     get_structure  log/1,X1,1
  314.     unify_variable_x  X1
  315.     get_structure  log/1,X1,1
  316.     unify_variable_x  X1
  317.     get_structure  log/1,X1,1
  318.     unify_variable_x  X1
  319.     get_structure  log/1,X1,1
  320.     unify_constant  x
  321.     proceed
  322.  
  323.  
  324. procedure  ops8/1
  325.  
  326. _10246:
  327.     get_structure  */2,X1,2
  328.     unify_variable_x  X1
  329.     unify_variable_x  X2
  330.     get_structure  +/2,X1,2
  331.     unify_constant  x
  332.     unify_constant  &1
  333.     get_structure  */2,X2,2
  334.     unify_variable_x  X1
  335.     unify_variable_x  X2
  336.     get_structure  +/2,X1,2
  337.     unify_variable_x  X1
  338.     unify_constant  &2
  339.     get_structure  ^/2,X1,2
  340.     unify_constant  x
  341.     unify_constant  &2
  342.     get_structure  +/2,X2,2
  343.     unify_variable_x  X1
  344.     unify_constant  &3
  345.     get_structure  ^/2,X1,2
  346.     unify_constant  x
  347.     unify_constant  &3
  348.     proceed
  349.  
  350.  
  351.